package com.room.search.service.dto;

import com.room.search.domain.RoomFile;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.persistence.Column;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Objects;

/**
 * A DTO for the {@link com.room.search.domain.RoomCommunity} entity.
 */
@ApiModel(description = "小区表")
public class RoomCommunityDTO implements Serializable {

    private Long id;

    /**
     * 小区名称类型
     */
    @Size(max = 8)
    @ApiModelProperty(value = "小区名称类型")
    private String name;

    /**
     * 均价
     */
    @Size(max = 32)
    @ApiModelProperty(value = "均价")
    private String average;

    /**
     * 建筑类型
     */
    @Size(max = 32)
    @ApiModelProperty(value = "建筑类型")
    private String buildingType;

    /**
     * 物业费用
     */
    @Size(max = 8)
    @ApiModelProperty(value = "物业费用")
    private String propertyCosts;

    /**
     * 物业公司
     */
    @Size(max = 32)
    @ApiModelProperty(value = "物业公司")
    private String propertyCompany;

    /**
     * 开发商
     */
    @Size(max = 32)
    @ApiModelProperty(value = "开发商")
    private String developer;

    /**
     * 楼栋总数
     */
    @Size(max = 8)
    @ApiModelProperty(value = "楼栋总数")
    private String buildingNo;

    /**
     * 房屋总数
     */
    @Size(max = 8)
    @ApiModelProperty(value = "房屋总数")
    private String roomNo;

    /**
     * 附近门店
     */
    @Size(max = 128)
    @ApiModelProperty(value = "附近门店")
    private String nearbyStores;


    /**
     * 受关注数量
     */
    @Size(max = 8)
    @ApiModelProperty(value = "受关注数量")
    private String focusNo;


    /**
     * 经度
     */
    private String longitude;
    /**
     * 纬度
     */
    private String latitude;

    /**
     * 具体位置
     */
    private String address;

    private List<RoomFile> files;

    private String province;
    private String city;
    private String district;
    private Date createdDate;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAverage() {
        return average;
    }

    public void setAverage(String average) {
        this.average = average;
    }

    public String getBuildingType() {
        return buildingType;
    }

    public void setBuildingType(String buildingType) {
        this.buildingType = buildingType;
    }

    public String getPropertyCosts() {
        return propertyCosts;
    }

    public void setPropertyCosts(String propertyCosts) {
        this.propertyCosts = propertyCosts;
    }

    public String getPropertyCompany() {
        return propertyCompany;
    }

    public void setPropertyCompany(String propertyCompany) {
        this.propertyCompany = propertyCompany;
    }

    public String getDeveloper() {
        return developer;
    }

    public void setDeveloper(String developer) {
        this.developer = developer;
    }

    public String getBuildingNo() {
        return buildingNo;
    }

    public void setBuildingNo(String buildingNo) {
        this.buildingNo = buildingNo;
    }

    public String getRoomNo() {
        return roomNo;
    }

    public void setRoomNo(String roomNo) {
        this.roomNo = roomNo;
    }

    public String getNearbyStores() {
        return nearbyStores;
    }

    public void setNearbyStores(String nearbyStores) {
        this.nearbyStores = nearbyStores;
    }

    public String getFocusNo() {
        return focusNo;
    }

    public void setFocusNo(String focusNo) {
        this.focusNo = focusNo;
    }

    public String getLongitude() {
        return longitude;
    }

    public RoomCommunityDTO setLongitude(String longitude) {
        this.longitude = longitude;
        return this;
    }

    public String getLatitude() {
        return latitude;
    }

    public RoomCommunityDTO setLatitude(String latitude) {
        this.latitude = latitude;
        return this;
    }

    public String getAddress() {
        return address;
    }

    public RoomCommunityDTO setAddress(String address) {
        this.address = address;
        return this;
    }

    public List<RoomFile> getFiles() {
        return files;
    }

    public RoomCommunityDTO setFiles(List<RoomFile> files) {
        this.files = files;
        return this;
    }

    public String getProvince() {
        return province;
    }

    public RoomCommunityDTO setProvince(String province) {
        this.province = province;
        return this;
    }

    public String getCity() {
        return city;
    }

    public RoomCommunityDTO setCity(String city) {
        this.city = city;
        return this;
    }

    public String getDistrict() {
        return district;
    }

    public RoomCommunityDTO setDistrict(String district) {
        this.district = district;
        return this;
    }

    public Date getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(Date createdDate) {
        this.createdDate = createdDate;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof RoomCommunityDTO)) {
            return false;
        }

        RoomCommunityDTO roomCommunityDTO = (RoomCommunityDTO) o;
        if (this.id == null) {
            return false;
        }
        return Objects.equals(this.id, roomCommunityDTO.id);
    }

    @Override
    public int hashCode() {
        return Objects.hash(this.id);
    }

    @Override
    public String toString() {
        return "RoomCommunityDTO{" +
            "id=" + id +
            ", name='" + name + '\'' +
            ", average='" + average + '\'' +
            ", buildingType='" + buildingType + '\'' +
            ", propertyCosts='" + propertyCosts + '\'' +
            ", propertyCompany='" + propertyCompany + '\'' +
            ", developer='" + developer + '\'' +
            ", buildingNo='" + buildingNo + '\'' +
            ", roomNo='" + roomNo + '\'' +
            ", nearbyStores='" + nearbyStores + '\'' +
            ", focusNo='" + focusNo + '\'' +
            ", longitude='" + longitude + '\'' +
            ", latitude='" + latitude + '\'' +
            ", address='" + address + '\'' +
            ", files=" + files +
            ", province='" + province + '\'' +
            ", city='" + city + '\'' +
            ", district='" + district + '\'' +
            '}';
    }
}
